为了账号安全,请及时绑定邮箱和手机立即绑定

struts2 jquery ajax 局部刷新遇到的各种问题

标签:
JQuery

   我们的网站一开始都是由前台提交表单到action,每次一个小操作整个页面都会刷新,影响用户体验,这次由我实现部分功能的局部刷新,但是初学ajax遇到不少问题

1、我们在struts.xml外扩展了一个xml来写json类型传值的action配置,我改完后直接新写了一个:

<action name="addAccount2"  class="random1.action.addAccount2"><result name="showAccount" type="json"><param name="root">list</param></result></action>

但是忘了删掉原来的导致出错:      

<!-- <action name="addAccount2"  class="random1.action.addAccount2"><result name="nextaction" type="chain" >account</result><result name="failure" type="freemaker">/error.jsp</result></action> -->

 

 

2、json传送数据后全变为小写

我在action里把取到的数据(list)转换成JSON,success函数里循环读取json的数据,但是在把新的内容append到相应的块里的时候,list里的对象属性首字母都是大写的,append的时候我自然写成大写,然而发现取到的都是undefined。查阅资料后,发现别人都是改成小写的,我改为小写的之后就正确了。

 

3、局部刷新后,相应块的js失效

本来有个下拉的js,局部刷新后居然失效了,

 

$(document).ready(function(){$("ul.expmenu li > div.header").click(function(){var arrow = $(this).find("span.arrow");alert("arrow");if(arrow.hasClass("up")){arrow.removeClass("up");arrow.addClass("down");}else if(arrow.hasClass("down")){arrow.removeClass("down");arrow.addClass("up");}$(this).parent().find("ul.menu").slideToggle();});});

解决无果后,只好把该效果放到了onclick事件里:

 

<script>function showcontent(id){//alert(id);var str="list"+id;/* $("div").children(".list").hide();$("#"+str).show(3000); */var arrow = $("#"+id).find("span.arrow");if(arrow.hasClass("up")){arrow.removeClass("up");arrow.addClass("down");$("#"+str).hide();}else if(arrow.hasClass("down")){arrow.removeClass("down");arrow.addClass("up");$("#"+str).show(3000);}$("#"+id).find("ul.menu").slideToggle();}</script>

 

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消